package schema;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 74646
 * Date: 2022-05-14
 * Time: 16:37
 */
// 懒汉模式
class Singleton5{
    // 1.不会立即初始化实例
    // 加上 volatile 防止 instance 被优化（内存可见性问题）
    private static  volatile Singleton5 instance = null;
    // 2.把构造方法设置为 private
    private Singleton5(){
    }
    // 3.提供一个方法来获取单例模式
    // 只有当真正需要用到这个实例的时候，才会真正去创建这个实例
    public static Singleton5 getInstance(){
        //如果这个条件成立，说明当前的单例模式是未初始化的，存在线程安全问题，需要加锁
        if(instance==null){
            synchronized (Singleton4.class){
                if(instance==null){
                    instance = new Singleton5();
                }
            }
        }
        return instance;
    }
}
public class Demo5 {
    public static void main(String[] args) {
        Singleton5 instance = Singleton5.getInstance();
    }
}
